草庐IT

Python float - str - 浮点怪异

全部标签

c++ - 当没有 float 数据类型时,为什么这段代码会出现浮点异常?

我没有除以零并且我的代码中没有float据类型,我仍然得到浮点异常。#include#include#include#include#includeusingnamespacestd;intmain(){unsignedlonglongintt,n;cin>>t;while(t--){cin>>n;unsignedlonglongintdeno=pow(10,n-1),count=2,sum=0,f1=1,f2=1;while(1){sum=f1+f2;f1=f2;f2=sum;count++;if((int)(sum/deno)>0){cout所有之前关于相同的问题都有类似的除以零的

c++ - 浮点计算的变化取决于编译器

当我运行完全相同的代码来执行在Windows和Solaris上编译的完全相同的浮点计算(使用double)时,我得到的结果略有不同。我知道由于舍入误差,结果不准确。然而,我希望舍入误差与平台无关,从而在两个平台上给出相同(稍微不正确)的结果,但事实并非如此。这是正常的,还是我的代码有其他问题? 最佳答案 在x86上,通常大多数计算都是使用80位数量进行的,除非另外强制为double。我所知道的大多数其他架构都以double进行所有计算(同样,除非以其他方式被覆盖)。我不知道您是在SPARC还是x86上运行Solaris,但如果是前者

c++ - 将二进制值转换为浮点值的计算器——我做错了什么?

我有以下代码,它以二进制形式将6个float写入磁盘并读回:#include#includeintmain(){intnumSegs=2;intnumVars=3;float*data=newfloat[numSegs*numVars];for(inti=0;i输出:00.230.460.690.921.1500.230.460.690.921.15当我在hexer中加载文件时,我们得到:000000001f856b3e1f85eb3ed7a3303f1f856b3f3333933f----------------我想直接从小数计算浮点值。例如:1f856b3e变为0.23,1f85e

c++ - 查找浮点类型可以在不损失精度的情况下处理的最大整数大小

Double的范围大于64位整数,但由于其表示形式,其精度较低(因为double也是64位,它不能容纳更多的实际值)。因此,当表示较大的整数时,您会开始失去整数部分的精度。#include#includetemplatevoidmaxint_to_double(){Ti=std::numeric_limits::max();TFloatd=i;std::cout();maxint_to_double();maxint_to_double();return0;}这打印:21474836472147483647.000000922337203685477580792233720368547

c++ - 任意浮点值与无穷大相比如何?

基本上我想从一堆值中搜索最小(正)值,并且需要一个默认值来与第一个值进行比较。天真的假设是,它们总是比较“小于”(NaN除外,但我们不考虑这些),但我不太确定。我正在使用float类型,我认为可以安全地假设我的目标硬件实现了无穷大值。下面是一些示例代码:autoleastValue=std::numeric_limits::infinity();for(autoi=something.begin(),e=something.end();i!=e;++i){autovalue=(*i)->GetValue();if(value 最佳答案

c++ - std::string::c_str() 如何返回不会导致内存泄漏或未定义的 c 字符串内容的 c 字符串?

我正在为家庭作业编写一个类似于std::string的字符串类,但我无法弄清楚如何返回一个不会导致内存泄漏并保证保持不变的c字符串,直到它不再使用。我目前有:constchar*string::c_str(){charc[_size+1];strncpy(c,_data,_size);c[_size]='\0';returnc;}但是内容在调用后不久就被覆盖了。如果我进行动态分配,我要么会发生内存泄漏,要么在任何时候给定字符串中只能存在一个c字符串。我怎样才能避免这种情况? 最佳答案 但是c_str指向的字符串只有在std::str

c++ - 如何使用浮点值作为非类型模板参数?

是否有任何理由不能将double作为模板的参数类型?例如:template//-//-C++11对此有更新吗? 最佳答案 这与精度有关,float无法精确表示,您指的是同一类型的可能性取决于数字的表示方式。考虑改为使用整数尾数和指数作为模板参数... 关于c++-如何使用浮点值作为非类型模板参数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4085508/

子过程“ TypeError:需要字节状的对象,而不是'str'”

我正在使用此代码几年前先前问的问题但是,我相信这已经过时了。尝试运行代码,我收到上面的错误。我仍然是Python的新手,因此我无法从类似问题中获得太多澄清。有人知道为什么会发生这种情况吗?importsubprocessdefgetLength(filename):result=subprocess.Popen(["ffprobe",filename],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)return[xforxinresult.stdout.readlines()if"Duration"inx]print(getLength('be

c++ - 流内容与返回字符串 `str()` 的区别?

我正在使用asmallpieceofcode生成我在互联网上找到的PDF文件,并尝试(温和地)优化它,因为创建文件需要很长时间。分析后,我将其缩小为以下代码:std::ostringstreamtmp;tmp发现在一个紧密的循环中,out是一个ostringstream,它在写入文件之前基本上包含整个PDF内容。我发现tmp.str()是该循环中花费最多时间的行,并且在查找C++引用时看到str()会返回一个拷贝流的基础字符串。然后,我认为删除该拷贝并直接使用out会更快。所以我转储了tmp并直接做了:out但是现在,生成的PDF文件被认为是“损坏的”,无法用PDF阅读器打开,而以前的

c++ - 如何在 C++ 中为浮点值显示多个前导零?

这个问题在这里已经有了答案:HowcanIpadanintwithleadingzeroswhenusingcout(7个答案)关闭7年前。在C++程序中,我想显示一列浮点值,以便符号、数字和小数点全部对齐。必要时,多个前导零应填充每个值的整数部分。例如:Acolumnoffloatingpointvalues:+000.0012-000.0123+000.1235-001.2346+012.3457-123.4568我有一个经过精心注释的测试程序来证明这个问题。但是,当我编辑这篇文章时,我在这里找到了我需要的答案:-Extraleadingzeroswhenprintingfloat